﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Reviewer {
    /// <summary>
    /// 常量类
    /// </summary>
    class Constants {
        public static readonly int SIDE_WHITE = 0;  // 白方
        public static readonly int SIDE_BLACK = 1;  // 黑方
        public static readonly int SIDE_NONE = -1;  // 没有设定下棋方

        public static readonly float PIECE_WIDTH = 46;          // 棋子的宽度
        public static readonly float PIECE_HEIGHT = 53;         // 棋子的高度
        public static readonly float PIECE_OFFSET_X = 23F;      // 棋子中心点与左右上方或者左右下方棋子中心点的水平偏移距离（棋子宽度的一般）
        public static readonly float PIECE_OFFSET_Y = 40.55F;   // 棋子中心点与左右上方或者左右下方棋子中心点的垂直偏移距离（棋子高度的3/4）

        public static readonly float STACK_PIECE_TOP = 53;                  // 堆栈所有棋子中心点与堆栈顶的距离
        public static readonly float STACK_WHITE_LEFT = 42;                 // 堆栈白色棋子中心点与堆栈左边缘的距离
        public static readonly float STACK_WHITE_TEXT_LEFT = 5;             // 堆栈白色棋子文字与堆栈左边缘的距离
        public static readonly float STACK_BLACK_RIGHT_OFFSET = 316;        // 堆栈黑色棋子中心点与右边缘的距离
        public static readonly float STACK_TEXT_TOP = 6;                    // 堆栈所有文字与堆栈顶的距离
        public static readonly float STACK_BLACK_TEXT_RIGHT_OFFSET = 42;    // 堆栈黑色棋子文字与堆栈右边缘的距离

        public static readonly int PIECES_POS_STACK = -999;         // 棋子默认XY坐标值（表明在堆栈中还没有下到棋盘上）

        public static readonly int GAME_INFO_TOP = 40;              // 对局信息的左边距
        public static readonly int GAME_INFO_LEFT = 10;             // 对局信息的上边距
        public static readonly float GAME_INFO_LINE_HEIGHT = 16.5F; // 对局信息的行高

        public static readonly float SPY_WINDOW_TOP = 40;               // 窥视窗口的上边距
        public static readonly float SPY_WINDOW_RIGHT_OFFSET = 30;      // 窥视窗口的上边距
        public static readonly float SPY_WINDOW_WIDTH = 209;            // 窥视窗口的宽度
        public static readonly float SPY_WINDOW_HEIGHT = 70;            // 窥视窗口的高度
        public static readonly float SPY_WINDOW_PIECE_OFFSET_X = 174;   // 窥视窗口中棋子的水平偏移距离
        public static readonly float SPY_WINDOW_PIECE_OFFSET_Y = 35;    // 窥视窗口中棋子的垂直偏移距离

        public static readonly int GAME_NONE = 0;       // 对局结果（无结果）
        public static readonly int GAME_WHITE_WINS = 1; // 对局结果（白胜）
        public static readonly int GAME_BLACK_WINS = 2; // 对局结果（黑色）
        public static readonly int GAME_DRAWS = 3;      // 对局结果（和棋）

        public static readonly int HOVER_OFFSET_X = 16;
        public static readonly int HOVER_OFFSET_Y = 16;
    }
}
